Feature: Users management

Scenario: Defining Users
* a user has an email address
* a user has a password
* a user has a first name
* a user has a last name
* a user has an avatar
* a user has a registration date
* a user has a status
* a user verification key

Scenario: Registering a user
Given the user is not identified
When the user specifies the first and last name
And provides a valid email address
And there is not existing account for that email address
And provides a password
And submits registering the account
Then the user record is saved
And the email address matches the one entered
And the name matches the one entered
And the registration date is today
And the user status is Not Confirmed
And an account confirmation email is sent to the user
And a random 16 characters verification key is set

Scenario: Confirming an account creation
Given an account confirmation is submitted
When the received email address is valid
And a Not Confirmed accounts exists for that email address
And the received verification key is valid
And the verification key matches the one in the account record
Then the user status is updated to Active
And the user session is started

Scenario: Deactivating a user

Scenario: Reactivating a user

Scenario: Updating the avatar

Scenario: Recovering a password